package tests;

import static org.junit.Assert.*;

import org.junit.Test;

import src.MyGenericsStack;

public class MyGenericStackTest {

	@Test
	public void testGenericStack(){
		
		new MyGenericsStack<Integer>(5);
	}
	
	@Test
	public void testPush(){
		MyGenericsStack<Integer> mg = new MyGenericsStack<Integer>(1);
		assertTrue(mg.isStackEmpty());
		mg.push(2);
		assertEquals((int) mg.peek(), 2);
		assertTrue(mg.isStackFull());
		mg.push(3);
		assertTrue(mg.isStackFull());
		
	}
	
	@Test
	public void testPop(){
		MyGenericsStack<Integer> mg = new MyGenericsStack<Integer>(1);
				
		mg.push(2);
		assertEquals((int) mg.peek(), 2);
		try {
			mg.pop();
		} catch (Exception e) {
		}
		
		try {
			mg.pop();
		} catch (Exception e) {
			assertTrue(mg.isStackEmpty());
		}
	}
	
	@Test
	public void testPeek(){
		//TODO Testar esta merda
	}

}
